//该文件是对axios的二次封装
//目的是为了让整个项目发送ajax请求时，通用的配置不用一遍遍的重复写

//1.引入axios模块
import axios from 'axios'
import NProgress from 'nprogress' //引入进度条模块
import 'nprogress/nprogress.css' //引入进度条样式

//2.创建axios实例对象 以后整个项目都用这个实例发送请求
const mockAjax = axios.create({
    baseURL:'/mock',//请求的基本路径
    timeout:1000,//设置超时时间
})

//3.设置请求拦截器
mockAjax.interceptors.request.use(config=>{
    NProgress.start() //设置进度条的开始
     return config
})

//4.设置响应拦截器
mockAjax.interceptors.response.use(response=>{
    NProgress.done() //设置进度条的结束
     return  response.data
},error=>{
    NProgress.done() //设置进度条的结束
    //即使是错误信息，也应该是一个Promise对象，如果是错误信息字符串，默认也会当成成功的操作
     return  Promise.reject(new Error(error.message))
})

//5.导出对象
export default mockAjax